home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1996 April: Mac OS SDK / Dev.CD Apr 96 SDK / Dev.CD Apr 96 SDK1.toast / Development Kits (Disc 1) / OpenDoc Development Framework / ODFDev / ODF / Framewrk / FWPart / Include / FWTrackr.h < prev    next >
Encoding:
Text File  |  1995-11-08  |  5.1 KB  |  173 lines  |  [TEXT/MPS ]

  1. //========================================================================================
  2. //
  3. //    File:                FWTrackr.h
  4. //    Release Version:    $ 1.0d11 $
  5. //
  6. //    Copyright:    © 1995 by Apple Computer, Inc., all rights reserved.
  7. //
  8. //========================================================================================
  9. //
  10. //    Three Classes:
  11. //            FW_CTracker
  12. //            FW_CThreeStepTracker
  13. //            FW_COneStepTracker
  14. //
  15. //
  16.  
  17. #ifndef FWTRACKR_H
  18. #define FWTRACKR_H
  19.  
  20. #ifndef FWPOINT_H
  21. #include "FWPoint.h"
  22. #endif
  23.  
  24. #ifndef FWAUTODE_H
  25. #include "FWAutoDe.h"
  26. #endif
  27.  
  28. #if FW_LIB_EXPORT_PRAGMAS
  29. #pragma lib_export on
  30. #endif
  31.  
  32. //========================================================================================
  33. //    Forward Declaration
  34. //========================================================================================
  35.  
  36. class FW_CLASS_ATTR ODFacet;
  37. class FW_CLASS_ATTR ODSession;
  38. class FW_CLASS_ATTR FW_CView;
  39. class FW_CLASS_ATTR FW_CMouseEvent;
  40.  
  41. //========================================================================================
  42. //    class FW_CBaseTracker
  43. //========================================================================================
  44.  
  45. class FW_CLASS_ATTR FW_CBaseTracker FW_AUTO_DESTRUCT_OBJECT
  46. {
  47. //----------------------------------------------------------------------------------------
  48. //    Initialization/Destruction
  49. //
  50. public:
  51.     FW_CBaseTracker(Environment* ev, FW_CView* view, ODFacet* facet);
  52.     virtual ~FW_CBaseTracker();
  53.     
  54. //----------------------------------------------------------------------------------------
  55. //    New API
  56. //
  57. public:    
  58.     // ----- Tracking -----
  59.     virtual FW_CPoint     BeginTracking(Environment* ev, 
  60.                             const FW_CPoint& anchorPoint) = 0;
  61.     virtual FW_CPoint     ContinueTracking(Environment* ev,
  62.                             const FW_CPoint& anchorPoint, 
  63.                             const FW_CPoint& previousPoint, 
  64.                             const FW_CPoint& currentPoint) = 0;
  65.     virtual FW_Boolean     EndTracking(Environment* ev,
  66.                             const FW_CPoint& anchorPoint, 
  67.                             const FW_CPoint& lastPoint) = 0;
  68.     
  69.     ODFacet*            GetFacet(Environment* ev) const
  70.                             {return fFacet;}
  71.     FW_CView*            GetView(Environment* ev) const
  72.                             {return fView;}
  73.                             
  74. //----------------------------------------------------------------------------------------
  75. //    Data Members
  76. //
  77. protected:
  78.     FW_CPoint            fAnchorPoint;
  79.     FW_CPoint            fPreviousPoint;
  80.     
  81. private:
  82.     ODFacet*            fFacet;    
  83.     FW_CView*            fView;    
  84. };
  85.  
  86. //========================================================================================
  87. //    class FW_CDropTracker
  88. //========================================================================================
  89.  
  90. class FW_CLASS_ATTR FW_CDropTracker : public FW_CBaseTracker
  91. {
  92. //----------------------------------------------------------------------------------------
  93. //    Initialization/Destruction
  94. //
  95. public:
  96.     FW_CDropTracker(Environment* ev, FW_CView* view, ODFacet* facet);
  97.     virtual ~FW_CDropTracker();
  98.     
  99. //----------------------------------------------------------------------------------------
  100. //    New API
  101. //
  102. public:
  103.     // ----- Dispatch tracking -----
  104.     void                 HandleBeginTracking(Environment *ev,
  105.                             const FW_CPoint& where,
  106.                             unsigned long dragAttributes);
  107.     void                HandleContinueTracking(Environment* ev,
  108.                             const FW_CPoint& where);
  109.     FW_Boolean             HandleEndTracking(Environment* ev,
  110.                             const FW_CPoint& where);
  111.  
  112.     // ----- Tracking -----
  113.     virtual FW_CPoint     BeginTracking(Environment* ev, 
  114.                             const FW_CPoint& anchorPoint);
  115.     virtual FW_CPoint     ContinueTracking(Environment* ev,
  116.                             const FW_CPoint& anchorPoint, 
  117.                             const FW_CPoint& previousPoint, 
  118.                             const FW_CPoint& currentPoint);
  119.     virtual FW_Boolean     EndTracking(Environment* ev,
  120.                             const FW_CPoint& anchorPoint, 
  121.                             const FW_CPoint& lastPoint);
  122.  
  123.     // ----- Drag Hilite -----
  124.     virtual void        ShowDragHilite(Environment* ev, ODShape* hiliteShape, FW_Boolean showInside);
  125.     virtual void        HideDragHilite(Environment* ev);
  126.  
  127.     FW_Boolean            IsInSourceFrame(Environment* ev) const
  128.                             {return (fDragAttributes & kODDragIsInSourceFrame);}
  129.     unsigned long        GetDragAttributes(Environment* ev) const;
  130.  
  131. //----------------------------------------------------------------------------------------
  132. //    Data Members
  133. //
  134. private:
  135.     unsigned long         fDragAttributes;
  136.     ODSession*            fSession;
  137.     
  138. #ifdef FW_BUILD_MAC
  139.     FW_Boolean            fMacHiliteOn;
  140. #endif
  141. };
  142.  
  143. //========================================================================================
  144. //    class FW_CTracker
  145. //========================================================================================
  146.  
  147. class FW_CLASS_ATTR FW_CTracker : public FW_CBaseTracker
  148. {
  149. //----------------------------------------------------------------------------------------
  150. //    Initialization/Destruction
  151. //
  152. public:
  153.     FW_CTracker(Environment* ev, FW_CView* view, ODFacet* facet, FW_Boolean waitMouseMoved = TRUE);
  154.     virtual ~FW_CTracker();
  155.     
  156. //----------------------------------------------------------------------------------------
  157. //    New API
  158. //
  159. public:
  160.     virtual FW_Boolean    Track(Environment* ev, const FW_CMouseEvent& theMouseEvent);
  161.  
  162. //----------------------------------------------------------------------------------------
  163. //    Data Members
  164. //
  165. private:
  166.     FW_Boolean            fWaitMouseMoved;
  167. };
  168.  
  169. #if FW_LIB_EXPORT_PRAGMAS
  170. #pragma lib_export off
  171. #endif
  172.  
  173. #endif